/**
 * Vue 项目的配置文件
 */
const path = require('path')
const PrerenderSPAPlugin = require('prerender-spa-plugin')
const Renderer = PrerenderSPAPlugin.PuppeteerRenderer

module.exports = {
  configureWebpack: { // 自定义 Vue 项目中的 webpack 构建配置
    plugins: [
      new PrerenderSPAPlugin({
        // Required - The path to the webpack-outputted app to prerender.
        staticDir: path.join(__dirname, 'dist'),
        // 配置哪些页面处理静态化
        routes: [ '/', '/about', '/foo' ],
        renderer: new Renderer({
          // 它的原理是等打包结束，启动一个服务，访问打包之后的网站页面，抓取生成 HTML 网页
          // renderAfterTime: 5000, // Wait 5 seconds.

          // 当页面中有了指定样式元素的时候开始抓取，内部使用 document.querySelector 查询
          // renderAfterElementExists: '.post-item',

          // 该方式只能用在根组件
          // 当页面中触发了 document.dispatchEvent(new Event('custom-render-trigger'))
          renderAfterDocumentEvent: 'render-trigger',
        })
      })
    ]
  }
}
